/**
 * 前序遍历二叉树
 * @param t
 */

let tree1 = {
    node:1,
    left:{
        node:2,
        left:{
            node:3,
            left:null,
            right:null
        }
    },
    right: {
        node:4,
        left:{
            node:5,
            left:{
                node:6,
                left:null,
                right:null
            },
            right:{
                node:7,
                left:{
                    node:8,
                    left:null,
                    right:null
                }
            }
        },
        right:{
            node:9,
            left:{
                node:10,
                left:null,
                right: null
            },
            right:{
                node:11,
                left:{
                    node:12,
                    left:null,
                    right:null
                },
                right:{
                    node:13,
                    left:null,
                    right:null
                }
            }
        }
    }
}


function preOrder(T) {
    // 如果一个节点都没有
    if(!T.node) return T;

    console.log(T.node) // 这就是先序遍历
    if(T.left) preOrder(T.left)
    if(T.right) preOrder(T.right)
}

// preOrder(tree1)


function midOrder(T) {
    // 如果一个节点都没有
    if(!T) return T;

    midOrder(T.left)
    console.log(T.node) //  中序遍历
    midOrder(T.right)
}

// console.log(midOrder(tree1));


function backOrder(T) {
    // 如果一个节点都没有
    if(!T) return T;

    backOrder(T.left)
    backOrder(T.right)
    console.log(T.node) // 后序遍历
}

console.log(backOrder(tree1));
